This invention relates to a data transfer device having one data transmitter and a plurality of data receivers for receiving a broadcast data transmitted from the data transmitter.
In a multiprocessor system, which is recently being focused on as one of high speed computers, data transfer is frequently performed among processors. As a high-efficiency data transferring method in the multiprocessor system, there is known a batch transfer of an identical data from a data transmitter for one processor to data receivers for each of a plurality of processors, i.e. a broadcast transfer. Wherein, an immediate data re-transfer is necessary when an error is detected in the received data.
A conventional data transfer device controls, at the broadcast transfer, re-transferring operation, using an error detection resistor provided in each data receiver. When the data transmitter transmits a broadcast data onto a data bus, each data receiver receives individually the data on the data bus and checks individually whether an error is present in the received data. The data receiver which detects an error sets a flag at a set bit position in its own error detection register. The data transmitter reads sequentially the error detection registers in the respective data receivers via the data bus at every time when transmission of one data block composed of plural data is completed, not at every one data transfer. When the flag is set in any of the error detection registers of the data receivers, the block data which has been transmitted is re-transmitted. At this time, the data transmitter provides a re-receiving request signal to all the data receivers. Responding to the re-receiving request signal, each data receiver discards all the broadcast data of the block regarding the error detected in any of the data receivers so as to prepare for re-receiving the data block.
In the conventional data transfer device having the above error detection register, at a broadcast transfer, an error is checked only when transfer of one data block is completed, and the whole data block is re-transferred when an error is detected. This causes remarkably worse efficiency of data re-transfer and bars speedy transfer.